package co.castle.levelgen.patterns;

import co.castle.cuts.Unleasher;
import co.castle.cuts.ingame.death.Death1;
import co.castle.cuts.ingame.death.Death2;
import sz.util.Position;

public class TowerTop extends StaticPattern
{
	private Unleasher[ ] unleashers = new Unleasher[ ]
	{ new Death1( ), new Death2( ) };

	public TowerTop( )
	{
		cellMap = new String[ ][ ]
		{
			{	"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVwwwwwww+wwwwwwwwwwwwww+wwwwwwwVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVwww...i.........ii.........i...wwwVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVww................................wwVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVww..................................wwVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVww....................................wwVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVw......................................wVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVww......................................wwVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw........................................wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw........................................wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw..............c..........c..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVwi............c^c........c^c............iwVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw..............c..........c..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw........................................wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw.............-............-.............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw............<o>..........<o>............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw.............-wwwwwwwwwwww-.............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw..............w..........w..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw=www..........w..wwwwww..w..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVwwwhw.ww.........w.ww....ww.w..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVwwNhwE./.........w.w......w.w.............iwVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVwwwhw.ww.........w.ww....ww.w..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw=www..........w..wwwwww..w..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw..............w..........w..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw.............-wwwwwwwwwwww-.............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw............<o>..........<o>............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw.............-............-.............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw........................................wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw..............c..........c..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVwi............c^c........c^c............iwVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw..............c..........c..............wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw........................................wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVw........................................wVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVww......................................wwVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVw......................................wVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVww....................................wwVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVww..................................wwVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVww................................wwVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVwww...i.........ii.........i...wwwVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVwwwwwww+wwwwwwwwwwwwww+wwwwwwwVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
				"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", } };

		charMap.put( ".", "TOWER_FLOOR" );
		charMap.put( "w", "TOWER_WALL" );
		charMap.put( "c", "TOWER_COLUMN" );
		charMap.put( "+", "TOWER_WINDOW" );
		charMap.put( "i", "TOWER_FLOOR FEATURE CANDLE" );
		charMap.put( "^", "CAMPANARIUM" );
		charMap.put( "h", "TOWER_FLOOR_H" );
		charMap.put( "=", "TOWER_STAIRS" );
		charMap.put( "/", "TOWER_FLOOR FEATURE MAGIC_DOOR 100" );
		charMap.put( "N", "TOWER_FLOOR_H EOL MAGIC_DOOR COST 1" );
		charMap.put( "E", "FAKE_STAIRDOWN EXIT _BACK" );
		charMap.put( ">", "CLOCK_GEAR_1" );
		charMap.put( "<", "CLOCK_GEAR_2" );
		charMap.put( "o", "CLOCK_GEAR_3" );
		charMap.put( "-", "CLOCK_GEAR_4" );
		charMap.put( "V", "VOID" );

	}

	public String getBoss( )
	{
		return "DEATH";
	}

	public Position getBossPosition( )
	{
		return new Position( 30, 15 );
	}

	public String getDescription( )
	{
		return "Tower Top";
	}

	public String getMapKey( )
	{
		return "CLOCKTOWER";
	}

	public String getMusicKeyMorning( )
	{
		return "DEATH";
	}

	public String getMusicKeyNoon( )
	{
		return null;
	}

	public Unleasher[ ] getUnleashers( )
	{
		return unleashers;
	}
}